/**
 * Copyright (c) 2020 Coder League
 * All rights reserved.
 *
 * File：EntityState.java
 * History:
 *         2020年12月19日: Initially created, Chrise.
 */
package club.coderleague.cfss.domain.enums;

import lombok.AllArgsConstructor;
import lombok.Getter;

/**
 * 实体状态。
 * @author Chrise
 */
@Getter
@AllArgsConstructor
public enum EntityState {
	/**
	 * 有效。
	 */
	VALID(1, "有效"), 
	/**
	 * 无效。
	 */
	INVALID(2, "无效"), 
	/**
	 * 冻结。
	 */
	FROZEN(3, "冻结"), 
	/**
	 * 申请。
	 */
	APPLY(4, "申请"), 
	/**
	 * 待审。
	 */
	AUDITING(5, "待审"), 
	/**
	 * 在业。
	 */
	OPENING(6, "在业"), 
	/**
	 * 在售。
	 */
	ONSALE(7, "在售"), 
	/**
	 * 已确认。
	 */
	CONFIRMED(8, "已确认"), 
	/**
	 * 已发货。
	 */
	DISTRIBUTED(9, "已发货"), 
	/**
	 * 已完成。
	 */
	COMPLETED(10, "已完成"), 
	/**
	 * 已取消。
	 */
	CANCELLED(11, "已取消"), 
	/**
	 * 删除。
	 */
	DELETED(99, "删除");
	
	private int value;
	private String text;
	
	/**
	 * 比较实体状态。
	 * @author Chrise 2020年12月19日
	 * @param state 实体状态对象。
	 * @return 实体状态相等时返回true，否则返回false。
	 */
	public boolean equals(EntityState state) {
		return (this.value == state.value);
	}
	
	/**
	 * 比较实体状态值。
	 * @author Chrise 2020年12月19日
	 * @param value 实体状态值。
	 * @return 实体状态值相等时返回true，否则返回false。
	 */
	public boolean equalsValue(Integer value) {
		return (value != null && this.value == value.intValue());
	}
}
